import { Observable } from 'rxjs';
import { EzFormControlConfiguration } from '../ez-form-control';
import { EzCheckbox } from './ez-checkbox';
import { EzFormGroup } from '../ez-form-group';
import { EzForm } from '../ez-form';

/**
 * 复选框可选项
 */
export interface EzCheckboxOption {
  /**
   * 值
   */
  value: any;
  /**
   * 展示文字
   */
  label: string;
  /**
   * 是否禁用
   */
  disabled?: boolean;
}

export declare type EzCheckboxOptions = EzCheckboxOption[];
/**
 * 复选框配置项
 */
export interface EzCheckboxConfiguration extends EzFormControlConfiguration<any, EzCheckbox> {
  type: 'checkbox';

  /**
   * 可选项配置
   */
  options:
    | EzCheckboxOptions
    | ((control: EzCheckbox, group: EzFormGroup, form: EzForm) => Observable<EzCheckboxOptions>);
}
